<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/4/17 0017
 * Time: 22:20
 */
//php 从终端分离自己并且在后台继续运行一个叫做守护运行的技术))

$child_pid = pcntl_fork();
echo $child_pid . PHP_EOL;
if ($child_pid) {
    exit(0);
//    pcntl_waitpid($child_pid, $status, 0);
//    var_dump('子进程退出状态' . $status);
//    $status = 0 ;
//    pcntl_wait($status);
}

//创建一个新的会话 从shell的进行组中分离
posix_setsid();

//如果STDIN STDOUT  STDERR常量变为可用的执行某些操作 这些必须在此关闭

while (true) {
    error_log("heartbeat\n", 3, './tmp/test.log');
    sleep(10);
}
//$status = 0 ;
//while (pcntl_wait($status)){
//    echo '子进程回收';
//}
//首先这个脚本创建了子进程并且创建了第二个进程然后父进程就退出了二子进程继续运行然后子进程断开与控制端的联系并且使用posix_setsid()创建它自己的会话与进程组,这个确保发送的shell的信号不会通过PHP子进程